// var i;
// var $debugManager = require("./DebugManager");
// var $uIView = require("./UIView");
// var l = cc._decorator;
// var u = l.ccclass;
// var d = (l.property, l.menu);
// var p = {
//     UIRoot: 999,
//     UIBlock: 1e3,
//     UILoading: 1001,
//     UITips: 1002
// };
// var h = (function (e) {
//     function t() {
//         var t = (null !== e && e.apply(this, arguments)) || this;
//         t._name = "scene_root";
//         t._scene = !0;
//         return t;
//     }
//     __extends(t, e);
//     t.prototype.onLoad = function () {
//         for (var e in p) {
//             var t = this.node.getChildByName(e);
//             if (!t) {
//                 var o = p[e];
//                 (t = new cc.Node(e)).setContentSize(cc.winSize);
//                 t.zIndex = o;
//                 this.node.addChild(t);
//             }
//         }
//         this.init();
//     };
//     t.prototype.init = function () {
//         var t = cc.director.getScene();
//         var o = cc.assetManager.bundles.find(function (e) {
//             return !!e.getSceneInfo(t.name);
//         });
//         var n;
//         if (null == o) {
//             n = void 0;
//         } else {
//             n = o.name;
//         }
//         $debugManager.DebugMgr.clean();
//         e.prototype.init.call(this, n, this._name, null);
//     };
//     return __decorate([u, d("view/UIScene")], t);
// })($uIView.default);
// exports.default = h;


// import { DebugMgr } from './DebugManager';
// import UIView from './UIView';

// const { ccclass, property, menu } = cc._decorator;

// /**
//  * 建议名称：UI层级
//  */
// enum UILayer {
//     UIRoot = 999,
//     UIBlock = 1000,
//     UILoading = 1001,
//     UITips = 1002
// }

// /**
//  * 建议名称：UIScene
//  */
// @ccclass
// @menu("view/UIScene")
// class UIScene extends UIView {
//     private _name: string = "scene_root";
//     protected _scene: boolean = true;

//     /**
//      * 当节点加载时调用
//      * 建议方法名：加载时初始化
//      */
//     onLoad(): void {
//         for (const key in UILayer) {
//             if (Object.prototype.hasOwnProperty.call(UILayer, key)) {
//                 let childNode = this.node.getChildByName(key);
//                 if (!childNode) {
//                     const zIndex = UILayer[key as keyof typeof UILayer];
//                     childNode = new cc.Node(key);
//                     childNode.setContentSize(cc.winSize);
//                     childNode.zIndex = zIndex;
//                     this.node.addChild(childNode);
//                 }
//             }
//         }
//         this.init();
//     }

//     /**
//      * 初始化场景
//      * 建议方法名：初始化
//      */
//     init(): void {
//         const currentScene = cc.director.getScene();
//         const bundle = cc.assetManager.bundles.find(bundle => !!bundle.getSceneInfo(currentScene.name));
//         const bundleName = bundle ? bundle.name : undefined;

//         DebugMgr.clean();
//         super.init(bundleName, this._name, null);
//     }
// }

// export default UIScene;

import { DebugMgr } from './DebugManager';
import UIViewBase from './UIView';

const { ccclass, property, menu } = cc._decorator;

/**
 * 建议名称：UI层级
 */
enum UILayer {
    UIRoot = 999,
    UIBlock = 1000,
    UILoading = 1001,
    UITips = 1002
}

/**
 * 建议名称：UIScene
 */
@ccclass
@menu("view/UIScene")
class UIScene extends UIViewBase {
    private sceneRootName: string = "scene_root";
    protected isSceneRoot: boolean = true;

    /**
     * 当节点加载时调用
     * 建议方法名：加载时初始化
     */
    onLoad(): void {
        for (const layerName in UILayer) {
            // 确保枚举属性是定义在枚举对象中的，不是继承的属性。
            if (Object.prototype.hasOwnProperty.call(UILayer, layerName)) {
                let existingChildNode = this.node.getChildByName(layerName);
                if (!existingChildNode) {
                    const zOrder = UILayer[layerName as keyof typeof UILayer];
                    const newNode = new cc.Node(layerName); // 创建新的节点
                    newNode.setContentSize(cc.winSize); // 设置新节点的大小为窗口大小
                    newNode.zIndex = zOrder; // 设置新节点的层级
                    this.node.addChild(newNode); // 添加新节点到当前节点的子节点
                }
            }
        }
        this.init();
    }

    /**
     * 初始化场景
     * 建议方法名：初始化
     */
    init(): void {
        const activeScene = cc.director.getScene(); // 获取当前激活的场景
        const sceneBundle = cc.assetManager.bundles.find(bundle => !!bundle.getSceneInfo(activeScene.name)); // 查找包含当前场景的资源包
        const sceneBundleName = sceneBundle ? sceneBundle.name : undefined; // 获取资源包名称

        DebugMgr.clearLogs(); // 调用调试管理器清理方法
        super.init(sceneBundleName, this.sceneRootName, null); // 调用父类的初始化方法
    }
}

export default UIScene;